package cn.cdeden.aiqa.service;

import cn.cdeden.aiqa.domain.WikiApp;
import cn.cdeden.aiqa.domain.WikiAppPerm;
import cn.cdeden.aiqa.domain.bo.AssignPermissionsRequest;
import cn.cdeden.aiqa.domain.vo.WikiAppCount;
import cn.cdeden.common.core.utils.page.TableDataInfo;
import cn.cdeden.common.mybatis.core.page.PageQuery;

import java.util.List;

public interface WikiAppService {

    /**
     * 新建知识库-应用
     * @param wikiApp
     * @return
     */
    WikiApp createWikiApp(WikiApp wikiApp);

    /**
     * 修改知识库-应用
     * @param wikiApp
     * @return
     */
    void updateWikiApp(WikiApp wikiApp);

    /**
     * 删除知识库-应用
     * @param ids
     */
    public void deleteWikiApps(List<Long> ids);

    /**
     * 分页查询应用
     * @param appName
     * @param pageQuery
     * @return
     */
    TableDataInfo<WikiApp> getAllWikiApps(String appName, PageQuery pageQuery);

    /**
     * 获取应用权限信息
     * @param appId
     * @return
     */
    List<WikiAppPerm> getAppPermissions(Long appId);

    /**
     * 分配应用权限
     * @param appId
     * @param request
     */
    void assignPermissions(Long appId, AssignPermissionsRequest request);

    /**
     * 获取当前用户有权限的应用
     * @param deptId
     * @param userId
     * @return
     */
    List<WikiApp> getAuthorizedApps(Long deptId, Long userId,String wikiType);

    WikiApp getgetAuthorizedAppByDataSetId(String dataSetId);

    /**
     * 增加问答次数
     * @param appId
     */
    boolean crCount(Long appId);

    /**
     * 统计使用频率
     * @return
     */
    WikiAppCount crCountInfo();
}
